package com.bidevalution.business.service;

import com.bidevalution.business.vo.StepReviewVo;
import com.bidevalution.dao.entity.BeMethodStep;
import com.bidevalution.dao.entity.BeSectionMethod;
import com.bidevalution.dao.entity.BeSectionStep;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * Created by glodon on 2019-08-19.
 */
public interface BeSectionStepService {

    /**
     * 根据标段id获取标段环节列表
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<BeSectionStep> getBeSectionStepList(String sectionId);

    /**
     * 根据当前环节id获取子环节列表
     * @param parentId
     * @return
     * @throws Exception
     */
    List<BeSectionStep> getChildSectionStepList(String sectionId,String parentCode);

    /**
     * 根据当前环节id查询环节信息
     * @param seqId
     * @return
     * @throws Exception
     */
    BeSectionStep getSectionStepBySeqId(String seqId);

    /**
     * 重评时获取标段环节列表
     *
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getBeSectionStepReappraisalList(String sectionId);
    
    /**
     * 根据当前环节id查询环节信息
     * @param seqId
     * @return
     * @throws Exception
     */
    BeSectionStep getSectionStepByCode(String sectionId,String stepCode);
    
    void addList(BeSectionMethod beSectionMethod,List<BeMethodStep> beMethodStepList) throws Exception;
    
    List<BeSectionStep> getAllStepList(String sectionId);
    
    List<BeSectionStep> getPreStepList(BeSectionStep beSectionStep);
    
    List<BeSectionStep> getNextStepList(BeSectionStep beSectionStep);
    List<BeSectionStep> getAllChildSectionStep(String sectionId,String parentCode);

    /**
     * 根据主键查询标段环节信息
     *
     * @param seqId
     * @return
     * @throws Exception
     */
    BeSectionStep selectByPrimaryKey(String seqId) throws Exception;
    
    void updateStepActive(String sectionStepId) throws Exception ;

    StepReviewVo review(BeSectionStep beSectionStep) throws Exception;
}
